package com.syni.mdd.sjb.community.base.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.syni.mdd.sjb.common.component.mybatis.community.entity.SjbQywxCompany;
import com.syni.mdd.sjb.common.component.mybatis.community.entity.SjbQywxCompanyUser;
import com.syni.mdd.sjb.common.component.mybatis.community.entity.SjbQywxExternalUserRef;
import com.syni.mdd.sjb.community.base.entity.dto.PageDTO;

import java.util.Map;

/**
 * @author wangbaitao
 * @version 1.0.0
 * <h>企业微信-外部联系人-企业员工,n:n关系表 service</h>
 * @Date 2021/2/22
 **/
public interface SjbQywxExternalUserRefService extends IService<SjbQywxExternalUserRef> {
    /**
     * 根据userid进行当前管理员的用户数据同步
     *
     * @param sjbUserId 数据宝用户Id
     * @param userid    企业微信用户id
     * @return 同步结果
     */
    Map<String, Object> syncData(String sjbUserId, String userid, String corpid);

    /**
     * 客户数据列表查询结果
     *
     * @param pageDTO 分页查询条件对象
     * @return 查询结果
     */
    Map<String, Object> queryDataByParam(PageDTO pageDTO);

    /**
     * 根据外部联系人id精确查询客户数据，主要用户页面跳转
     *
     * @param externalUserId 外部联系人id
     * @return 查询结果
     */
    Map<String, Object> getUserDataById(String externalUserId);

    /**
     * 根据企业id获取添加人集合
     *
     * @param corpId 企业Id
     * @return 查询结果
     */
    Map<String, Object> getAddUsers(String corpId);

    /**
     * 同步外部联系人数据接口
     *
     * @param sjbQywxCompanyUser 成员信息
     * @param sjbQywxCompany     企业信息
     */
    void syncExternalUserData(SjbQywxCompanyUser sjbQywxCompanyUser, SjbQywxCompany sjbQywxCompany);
}
